from django.db import models


# Create your models here.

# 人员登录、内外部级别表
class Login(models.Model):
    # 员工姓名
    Lname = models.CharField(max_length=20000)
    # 员工密码
    Lpassword = models.CharField(max_length=20000)
    # 员工部门
    Ldepartment = models.CharField(max_length=20000)
    # 员工所在外部分公司或项目
    Loutteroffice = models.CharField(max_length=20000)
    # 员工所在内部分公司或项目
    Linneroffice = models.CharField(max_length=20000)
    # 员工所属项目
    Lproject = models.CharField(max_length=20000)
    # 员工内部级别 0==一般人员 1==项目发起人员 2==劳务分公司审批人员 3==劳务公司本部审批人员 4==劳务公司本部主管领导 5==劳务公司一把手
    Linnerlevel = models.IntegerField(max_length=2)
    # 员工外部级别 0==一般人员 1==项目部劳资专员
    Loutterlevel = models.IntegerField(max_length=2)
    # 员工审批状态 0==待审核 1==一次审批 2==二次审批 3==三次审批···诸如此类
    Lstate = models.IntegerField(max_length=2)
    # 员工审批状态文本 就是一堆话
    Lstatetext = models.CharField(max_length=20000)
    # 本条数据创建日期
    Lcreatedate = models.DateTimeField(auto_now_add=True)
    # 本条数据最后更新日期
    Lchangedate = models.DateTimeField(auto_now=True)


# 工资单
class Salary_list(models.Model):
    # 对应工作流程id
    SLid = models.IntegerField(max_length=20000)
    # 工资单表头
    SLtitle = models.CharField(max_length=100000)
    # 工资单内容
    SLcontent = models.CharField(max_length=1000000)
    # 工资单对应月份
    SLmonth = models.IntegerField(max_length=2)
    # 工资单对应分公司
    SLoutteroffice = models.CharField(max_length=20000)
    # 工资单对应项目部
    SLinneroffice = models.CharField(max_length=20000)
    # 工资单对应外部人员,提交人
    SLoutterlogin = models.CharField(max_length=20000)
    # 工资单对应内部人员
    SLinnerlogin = models.CharField(max_length=20000)
    # 工资单对应项目
    SLproject = models.CharField(max_length=20000)
    # 本条数据创建日期
    SLcreatedate = models.DateTimeField(auto_now_add=True)
    # 本条数据最后更新日期
    SLchangedate = models.DateTimeField(auto_now=True)
    # 对应工人身份证号
    SLpersonID=models.CharField(max_length=20000)


# 单人短期劳动合同及花名册
class Contract(models.Model):
    # 对应工作流程id
    Cid = models.IntegerField(max_length=20000)
    # 短期劳动合同ID
    Cidself = models.CharField(max_length=20000)
    # 关联的分包合同ID
    Cidsum = models.CharField(max_length=20000)
    # 劳务作业人员姓名
    Cname = models.CharField(max_length=20000)
    # 劳务作业人员身份证
    CIdCard = models.CharField(max_length=20000)


# 短期劳动合同内容
class Contractshort(models.Model):
    # 短期劳动合同ID
    CSid = models.CharField(max_length=20000)
    # 短期劳动合同工作
    CSjob = models.CharField(max_length=20000)
    # 短期劳动合同工种
    CSkind = models.CharField(max_length=20000)
    # 短期劳动合同计价方式    0==计日  1==计件
    CSsort = models.IntegerField(max_length=4)
    # 短期劳动合同单价，单位：元
    CSprice = models.IntegerField(max_length=20000)
    # 短期劳动合同起始日期
    CSstart = models.IntegerField(max_length=20000)
    # 短期劳动合同截止日期
    CSend = models.IntegerField(max_length=20000)
    # 短期劳动合同扫描件
    CSscan = models.CharField(max_length=20000)


# 分包合同内容
class Contractsum(models.Model):
    # 工作流id
    CSUWFid = models.IntegerField(max_length=20000)
    # 分包合同编号
    CSUid = models.CharField(max_length=20000)
    # 甲方名称OBname的id
    CSUpartyA = models.CharField(max_length=20000)
    # 乙方名称OBname的id
    CSUpartyB = models.CharField(max_length=20000)
    # 项目名称Pname的id
    CSUproject = models.CharField(max_length=20000)
    # 合同内容
    CSUtext = models.CharField(max_length=20000)
    # 分包合同扫描件
    CSUscan = models.CharField(max_length=20000)

#


# 工作流程
class Workflow(models.Model):
    # 工作流id
    WFid = models.IntegerField(max_length=20000)
    # 工作流审批状态 使用json
#{
#     "one": {
#         "name": "一个人",
#         "state": 0
#     },
#     "two": [
#         [
#             "chuan",
#             {
#                 "name": "xxx",
#                 "state": 8
#             },
#             {
#                 "name": "ttt",
#                 "state": 7
#             }
#         ]
#     ],
#     "three": {
#         "name": 0
#     },
#     "isNonProfit": true,
#     "address": {
#         "street": "科技园路.",
#         "city": "江苏苏州",
#         "country": "中国"
#     },
#     "links": [
#         {
#             "name": "Google",
#             "url": "http://www.google.com"
#         },
#         {
#             "name": "Baidu",
#             "url": "http://www.baidu.com"
#         },
#         {
#             "name": "SoSo",
#             "url": "http://www.SoSo.com"
#         }
#     ]
# }
    WFstate = models.CharField(max_length=20000)
    # 工作流审批状态文本 就是一堆话，存为json {0:"提交审批的文本";1:"第一次审批的文本";2:"第二次审批的文本";········}
    WFstatetext = models.CharField(max_length=20000)
    # 本条数据创建日期
    WFcreatedate = models.DateTimeField(auto_now_add=True)
    # 本条数据最后更新日期
    WFchangedate = models.DateTimeField(auto_now=True)


# 内外分子公司
class Outer_branchoffice(models.Model):
    # 外部分子公司事业部名称
    OBname = models.CharField(max_length=20000)
    # 本条数据创建日期
    OBcreatedate = models.DateTimeField(auto_now_add=True)
    # 外部分子公司事业部审批状态 0==待审核 1==一次审批 2==二次审批 3==三次审批···诸如此类
    #                         0x==内部分子公司  1x==外部分子公司
    OBstate = models.IntegerField(max_length=2)
    # 外部分子公司事业部审批状态文本 就是一堆话
    OBstatetext = models.CharField(max_length=20000)
    # 本条数据最后更新日期
    OBchangedate = models.DateTimeField(auto_now=True)


# 项目部
class Inner_branchoffice(models.Model):
    # 外部分子公司事业部名称
    NBname = models.CharField(max_length=20000)
    # 本条数据创建日期
    NBcreatedate = models.DateTimeField(auto_now_add=True)
    # 内部分子公司事业部审批状态 0==待审核 1==一次审批 2==二次审批 3==三次审批···诸如此类
    NBstate = models.IntegerField(max_length=2)
    # 内部分子公司事业部审批状态文本 就是一堆话
    NBstatetext = models.CharField(max_length=20000)
    # 本条数据最后更新日期
    NBchangedate = models.DateTimeField(auto_now=True)


# 项目信息
class Project(models.Model):
    # 项目名称
    Pname = models.CharField(max_length=20000)
    # 项目所属外部分子公司
    Poutteroffice = models.CharField(max_length=20000)
    # 项目所属内部分子公司
    Pinneroffice = models.CharField(max_length=20000)
    # 关联外部人员
    Poutterlogin = models.CharField(max_length=20000)
    # 关联内部人员
    Pinnerlogin = models.CharField(max_length=20000)
    # 本条数据创建日期
    Pcreatedate = models.DateTimeField(auto_now_add=True)
    # 项目审批状态 0==待审核 1==一次审批 2==二次审批 3==三次审批···诸如此类
    Pstate = models.IntegerField(max_length=2)
    # 项目审批状态文本 就是一堆话
    Pstatetext = models.CharField(max_length=20000)
    # 本条数据最后更新日期
    Pchangedate = models.DateTimeField(auto_now=True)




#########################################流程设计器###########################################

#流程设计器表
class Sopdesign(models.Model):
    #表单、流程ID
    SOPid=models.CharField(max_length=20000)
    #元素ID
    SOPeleid=models.CharField(max_length=20000)
    #类型 0==开始    1==结束     2==一般元素     3==整理元件
    SOPsort=models.IntegerField()
    #属性类型，即属性名称 0==坐标，内容解析为二元数坐标值       1==引入线ID，内容纯文本        2==引出线ID，内容纯文本        3==表单内容，内容json：
    # {
    #     "选择第一个处理人": [
    #         "当前表单行的类型，如单选、多选",
    #         "张三",
    #         "李四",
    #         "王五",
    #         "不管了，没人处理"
    #     ],
    #     "url": "http://www.bejson.com",
    #     "page": 88,
    #     "isNonProfit": true,
    #     "address": {
    #         "street": "科技园路.",
    #         "city": "江苏苏州",
    #         "country": "中国"
    #     },
    #     "links": [
    #         {
    #             "name": "Google",
    #             "url": "http://www.google.com"
    #         },
    #         {
    #             "name": "Baidu",
    #             "url": "http://www.baidu.com"
    #         },
    #         {
    #             "name": "SoSo",
    #             "url": "http://www.SoSo.com"
    #         }
    #     ]
    # }
    # 。

    SOPprop=models.IntegerField()
    #属性内容，内容仅为通用内容，不存储实际工作流程中的任何数据
    SOPcontent=models.CharField(max_length=20000)
    #绰号，当为典型表单时，存储标题或昵称
    SOPnick=models.CharField(max_length=20000)

